﻿using OutdoorLib.BaseEntity.Dictionary;
using OutdoorLib.BaseEntity.Face;
using OutdoorLib.Securety;
using OutdoorLib.BaseEntity.Agency;
using Grishko.DataTier;


//namespace OutdoorLib.BaseEntity.Face
//{
    public static class EmployeerExt
    {
        /// <summary>
        /// Возвращает истину если сотрудник имеет  одну из ролей перечисленных в  RoleList
        /// </summary>
        /// <param name="_Empl"></param>
        /// <param name="RoleList"></param>
        /// <returns></returns>
        public static bool IsInRole(this Employeer _Empl, string[] RoleList)
        {
            if (_Empl == null) return false;
            if (_Empl.Login.Length == 0) return false;
            ws_Securety ws = new ws_Securety();
            RoleMemberList l = ws.GetRoleMemberList(_Empl.Login);
            foreach (DictionaryItem r in l)
            {
                for (int i = 0; i < RoleList.Length; i++)
                {
                    if (RoleList[i].ToUpper().Equals(r.ID.ToUpper())) return true;
                }
            }
            return false;
        }

        /// <summary>
        /// возвращает строчку формата - Иванов А.В. (бухгалтерия/бухгалтер)
        /// </summary>
        /// <returns></returns>
        public static string GetFullNameWithDepartmentPosition(this Employeer _Empl)
        {
            return _Empl.ShortName + " (" + _Empl.GetDepartment().Name + (string.IsNullOrEmpty(_Empl.Position) ? ")" : "/" + _Empl.Position + ")");
        }

        public static Department GetDepartment(this Employeer _Empl)
        {
            return GlobalConstants .CurrentAgency.GetDepartment(_Empl.DepartmentId);

        }
        
    }
//}